<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE DeriveGeneric #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE FlexibleContexts #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE RankNTypes #-}</span><span>
</span><span id="line-5"></span><span>
</span><span id="line-6"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.Types.LocalBuildInfo</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-7"></span><span>    </span><span class="annot"><span class="hs-comment">-- * The type</span></span><span>
</span><span id="line-8"></span><span>
</span><span id="line-9"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier">LocalBuildInfo</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-10"></span><span>
</span><span id="line-11"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Convenience accessors</span></span><span>
</span><span id="line-12"></span><span>
</span><span id="line-13"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localComponentId"><span class="hs-identifier">localComponentId</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localUnitId"><span class="hs-identifier">localUnitId</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localCompatPackageKey"><span class="hs-identifier">localCompatPackageKey</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localPackage"><span class="hs-identifier">localPackage</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>
</span><span id="line-18"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Build targets of the 'LocalBuildInfo'.</span></span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#componentNameCLBIs"><span class="hs-identifier">componentNameCLBIs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span>    </span><span class="hs-comment">-- NB: the primes mean that they take a 'PackageDescription'</span><span>
</span><span id="line-23"></span><span>    </span><span class="hs-comment">-- which may not match 'localPkgDescr' in 'LocalBuildInfo'.</span><span>
</span><span id="line-24"></span><span>    </span><span class="hs-comment">-- More logical types would drop this argument, but</span><span>
</span><span id="line-25"></span><span>    </span><span class="hs-comment">-- at the moment, this is the ONLY supported function, because</span><span>
</span><span id="line-26"></span><span>    </span><span class="hs-comment">-- 'localPkgDescr' is not guaranteed to match.  At some point</span><span>
</span><span id="line-27"></span><span>    </span><span class="hs-comment">-- we will fix it and then we can use the (free) unprimed</span><span>
</span><span id="line-28"></span><span>    </span><span class="hs-comment">-- namespace for the correct commands.</span><span>
</span><span id="line-29"></span><span>    </span><span class="hs-comment">--</span><span>
</span><span id="line-30"></span><span>    </span><span class="hs-comment">-- See https://github.com/haskell/cabal/issues/3606 for more</span><span>
</span><span id="line-31"></span><span>    </span><span class="hs-comment">-- details.</span><span>
</span><span id="line-32"></span><span>
</span><span id="line-33"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#componentNameTargets%27"><span class="hs-identifier">componentNameTargets'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-34"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#unitIdTarget%27"><span class="hs-identifier">unitIdTarget'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-35"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder%27"><span class="hs-identifier">allTargetsInBuildOrder'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-36"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withAllTargetsInBuildOrder%27"><span class="hs-identifier">withAllTargetsInBuildOrder'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder%27"><span class="hs-identifier">neededTargetsInBuildOrder'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-38"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withNeededTargetsInBuildOrder%27"><span class="hs-identifier">withNeededTargetsInBuildOrder'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-39"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#testCoverage"><span class="hs-identifier">testCoverage</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-40"></span><span>
</span><span id="line-41"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Functions you SHOULD NOT USE (yet), but are defined here to</span></span><span>
</span><span id="line-42"></span><span>    </span><span class="hs-comment">-- prevent someone from accidentally defining them</span><span>
</span><span id="line-43"></span><span>
</span><span id="line-44"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#componentNameTargets"><span class="hs-identifier">componentNameTargets</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-45"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#unitIdTarget"><span class="hs-identifier">unitIdTarget</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-46"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder"><span class="hs-identifier">allTargetsInBuildOrder</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withAllTargetsInBuildOrder"><span class="hs-identifier">withAllTargetsInBuildOrder</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-48"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder"><span class="hs-identifier">neededTargetsInBuildOrder</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-49"></span><span>    </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withNeededTargetsInBuildOrder"><span class="hs-identifier">withNeededTargetsInBuildOrder</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-50"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-53"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Prelude.html"><span class="hs-identifier">Distribution.Compat.Prelude</span></a></span><span>
</span><span id="line-54"></span><span>
</span><span id="line-55"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html"><span class="hs-identifier">Distribution.Types.PackageDescription</span></a></span><span>
</span><span id="line-56"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html"><span class="hs-identifier">Distribution.Types.ComponentLocalBuildInfo</span></a></span><span>
</span><span id="line-57"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentRequestedSpec.html"><span class="hs-identifier">Distribution.Types.ComponentRequestedSpec</span></a></span><span>
</span><span id="line-58"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentId.html"><span class="hs-identifier">Distribution.Types.ComponentId</span></a></span><span>
</span><span id="line-59"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.PackageId.html"><span class="hs-identifier">Distribution.Types.PackageId</span></a></span><span>
</span><span id="line-60"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.UnitId.html"><span class="hs-identifier">Distribution.Types.UnitId</span></a></span><span>
</span><span id="line-61"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.TargetInfo.html"><span class="hs-identifier">Distribution.Types.TargetInfo</span></a></span><span>
</span><span id="line-62"></span><span>
</span><span id="line-63"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.InstallDirs.html"><span class="hs-identifier">Distribution.Simple.InstallDirs</span></a></span><span> </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.InstallDirs.html#absoluteInstallDirs"><span class="hs-identifier">absoluteInstallDirs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-64"></span><span>                                               </span><span class="annot"><a href="Distribution.Simple.InstallDirs.html#prefixRelativeInstallDirs"><span class="hs-identifier">prefixRelativeInstallDirs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-65"></span><span>                                               </span><span class="annot"><a href="Distribution.Simple.InstallDirs.html#substPathTemplate"><span class="hs-identifier">substPathTemplate</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-66"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Program.html"><span class="hs-identifier">Distribution.Simple.Program</span></a></span><span>
</span><span id="line-67"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.PackageDescription.html"><span class="hs-identifier">Distribution.PackageDescription</span></a></span><span>
</span><span id="line-68"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html"><span class="hs-identifier">Distribution.Simple.Compiler</span></a></span><span>
</span><span id="line-69"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.PackageIndex.html"><span class="hs-identifier">Distribution.Simple.PackageIndex</span></a></span><span>
</span><span id="line-70"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html"><span class="hs-identifier">Distribution.Simple.Setup</span></a></span><span>
</span><span id="line-71"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.System.html"><span class="hs-identifier">Distribution.System</span></a></span><span>
</span><span id="line-72"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Pretty.html"><span class="hs-identifier">Distribution.Pretty</span></a></span><span>
</span><span id="line-73"></span><span>
</span><span id="line-74"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Graph.html"><span class="hs-identifier">Distribution.Compat.Graph</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Graph.html#Graph"><span class="hs-identifier">Graph</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-75"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="Distribution.Compat.Graph.html"><span class="hs-identifier">Distribution.Compat.Graph</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Graph</span></span><span>
</span><span id="line-76"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.html#"><span class="hs-identifier">Data.Map</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Map</span></span><span>
</span><span id="line-77"></span><span>
</span><span id="line-78"></span><span class="hs-comment">-- | Data cached after configuration step.  See also</span><span>
</span><span id="line-79"></span><span class="hs-comment">-- 'Distribution.Simple.Setup.ConfigFlags'.</span><span>
</span><span id="line-80"></span><span id="local-6989586621679708540"><span id="local-6989586621679708541"></span></span><span class="hs-keyword">data</span><span> </span><span id="LocalBuildInfo"><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-var">LocalBuildInfo</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="LocalBuildInfo"><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-var">LocalBuildInfo</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-81"></span><span>        </span><span id="configFlags"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ConfigFlags
</span><a href="Distribution.Types.LocalBuildInfo.html#configFlags"><span class="hs-identifier hs-var hs-var">configFlags</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ConfigFlags"><span class="hs-identifier hs-type">ConfigFlags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-82"></span><span>        </span><span class="hs-comment">-- ^ Options passed to the configuration step.</span><span>
</span><span id="line-83"></span><span>        </span><span class="hs-comment">-- Needed to re-run configuration when .cabal is out of date</span><span>
</span><span id="line-84"></span><span>        </span><span id="flagAssignment"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; FlagAssignment
</span><a href="Distribution.Types.LocalBuildInfo.html#flagAssignment"><span class="hs-identifier hs-var hs-var">flagAssignment</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-85"></span><span>        </span><span class="hs-comment">-- ^ The final set of flags which were picked for this package</span><span>
</span><span id="line-86"></span><span>        </span><span id="componentEnabledSpec"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ComponentRequestedSpec
</span><a href="Distribution.Types.LocalBuildInfo.html#componentEnabledSpec"><span class="hs-identifier hs-var hs-var">componentEnabledSpec</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentRequestedSpec.html#ComponentRequestedSpec"><span class="hs-identifier hs-type">ComponentRequestedSpec</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-87"></span><span>        </span><span class="hs-comment">-- ^ What components were enabled during configuration, and why.</span><span>
</span><span id="line-88"></span><span>        </span><span id="extraConfigArgs"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; [String]
</span><a href="Distribution.Types.LocalBuildInfo.html#extraConfigArgs"><span class="hs-identifier hs-var hs-var">extraConfigArgs</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-89"></span><span>        </span><span class="hs-comment">-- ^ Extra args on the command line for the configuration step.</span><span>
</span><span id="line-90"></span><span>        </span><span class="hs-comment">-- Needed to re-run configuration when .cabal is out of date</span><span>
</span><span id="line-91"></span><span>        </span><span id="installDirTemplates"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; InstallDirTemplates
</span><a href="Distribution.Types.LocalBuildInfo.html#installDirTemplates"><span class="hs-identifier hs-var hs-var">installDirTemplates</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.InstallDirs.html#InstallDirTemplates"><span class="hs-identifier hs-type">InstallDirTemplates</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-92"></span><span>                </span><span class="hs-comment">-- ^ The installation directories for the various different</span><span>
</span><span id="line-93"></span><span>                </span><span class="hs-comment">-- kinds of files</span><span>
</span><span id="line-94"></span><span>        </span><span class="hs-comment">--TODO: inplaceDirTemplates :: InstallDirs FilePath</span><span>
</span><span id="line-95"></span><span>        </span><span id="compiler"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Compiler
</span><a href="Distribution.Types.LocalBuildInfo.html#compiler"><span class="hs-identifier hs-var hs-var">compiler</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html#Compiler"><span class="hs-identifier hs-type">Compiler</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-96"></span><span>                </span><span class="hs-comment">-- ^ The compiler we're building with</span><span>
</span><span id="line-97"></span><span>        </span><span id="hostPlatform"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Platform
</span><a href="Distribution.Types.LocalBuildInfo.html#hostPlatform"><span class="hs-identifier hs-var hs-var">hostPlatform</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.System.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-98"></span><span>                </span><span class="hs-comment">-- ^ The platform we're building for</span><span>
</span><span id="line-99"></span><span>        </span><span id="buildDir"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; String
</span><a href="Distribution.Types.LocalBuildInfo.html#buildDir"><span class="hs-identifier hs-var hs-var">buildDir</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-100"></span><span>                </span><span class="hs-comment">-- ^ Where to build the package.</span><span>
</span><span id="line-101"></span><span>        </span><span id="cabalFilePath"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-102"></span><span>                </span><span class="hs-comment">-- ^ Path to the cabal file, if given during configuration.</span><span>
</span><span id="line-103"></span><span>        </span><span id="componentGraph"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Graph ComponentLocalBuildInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#componentGraph"><span class="hs-identifier hs-var hs-var">componentGraph</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Graph.html#Graph"><span class="hs-identifier hs-type">Graph</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html#ComponentLocalBuildInfo"><span class="hs-identifier hs-type">ComponentLocalBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-104"></span><span>                </span><span class="hs-comment">-- ^ All the components to build, ordered by topological</span><span>
</span><span id="line-105"></span><span>                </span><span class="hs-comment">-- sort, and with their INTERNAL dependencies over the</span><span>
</span><span id="line-106"></span><span>                </span><span class="hs-comment">-- intrapackage dependency graph.</span><span>
</span><span id="line-107"></span><span>                </span><span class="hs-comment">-- TODO: this is assumed to be short; otherwise we want</span><span>
</span><span id="line-108"></span><span>                </span><span class="hs-comment">-- some sort of ordered map.</span><span>
</span><span id="line-109"></span><span>        </span><span id="componentNameMap"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Map ComponentName [ComponentLocalBuildInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameMap"><span class="hs-identifier hs-var hs-var">componentNameMap</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.Internal.html#Map"><span class="hs-identifier hs-type">Map</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.ComponentName.html#ComponentName"><span class="hs-identifier hs-type">ComponentName</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html#ComponentLocalBuildInfo"><span class="hs-identifier hs-type">ComponentLocalBuildInfo</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-110"></span><span>                </span><span class="hs-comment">-- ^ A map from component name to all matching</span><span>
</span><span id="line-111"></span><span>                </span><span class="hs-comment">-- components.  These coincide with 'componentGraph'</span><span>
</span><span id="line-112"></span><span>        </span><span id="installedPkgs"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; InstalledPackageIndex
</span><a href="Distribution.Types.LocalBuildInfo.html#installedPkgs"><span class="hs-identifier hs-var hs-var">installedPkgs</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.PackageIndex.html#InstalledPackageIndex"><span class="hs-identifier hs-type">InstalledPackageIndex</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-113"></span><span>                </span><span class="hs-comment">-- ^ All the info about the installed packages that the</span><span>
</span><span id="line-114"></span><span>                </span><span class="hs-comment">-- current package depends on (directly or indirectly).</span><span>
</span><span id="line-115"></span><span>                </span><span class="hs-comment">-- The copy saved on disk does NOT include internal</span><span>
</span><span id="line-116"></span><span>                </span><span class="hs-comment">-- dependencies (because we just don't have enough</span><span>
</span><span id="line-117"></span><span>                </span><span class="hs-comment">-- information at this point to have an</span><span>
</span><span id="line-118"></span><span>                </span><span class="hs-comment">-- 'InstalledPackageInfo' for an internal dep), but we</span><span>
</span><span id="line-119"></span><span>                </span><span class="hs-comment">-- will often update it with the internal dependencies;</span><span>
</span><span id="line-120"></span><span>                </span><span class="hs-comment">-- see for example 'Distribution.Simple.Build.build'.</span><span>
</span><span id="line-121"></span><span>                </span><span class="hs-comment">-- (This admonition doesn't apply for per-component builds.)</span><span>
</span><span id="line-122"></span><span>        </span><span id="pkgDescrFile"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#pkgDescrFile"><span class="hs-identifier hs-var hs-var">pkgDescrFile</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-123"></span><span>                </span><span class="hs-comment">-- ^ the filename containing the .cabal file, if available</span><span>
</span><span id="line-124"></span><span>        </span><span id="localPkgDescr"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-125"></span><span>                </span><span class="hs-comment">-- ^ WARNING WARNING WARNING Be VERY careful about using</span><span>
</span><span id="line-126"></span><span>                </span><span class="hs-comment">-- this function; we haven't deprecated it but using it</span><span>
</span><span id="line-127"></span><span>                </span><span class="hs-comment">-- could introduce subtle bugs related to</span><span>
</span><span id="line-128"></span><span>                </span><span class="hs-comment">-- 'HookedBuildInfo'.</span><span>
</span><span id="line-129"></span><span>                </span><span class="hs-comment">--</span><span>
</span><span id="line-130"></span><span>                </span><span class="hs-comment">-- In principle, this is supposed to contain the</span><span>
</span><span id="line-131"></span><span>                </span><span class="hs-comment">-- resolved package description, that does not contain</span><span>
</span><span id="line-132"></span><span>                </span><span class="hs-comment">-- any conditionals.  However, it MAY NOT contain</span><span>
</span><span id="line-133"></span><span>                </span><span class="hs-comment">-- the description with a 'HookedBuildInfo' applied</span><span>
</span><span id="line-134"></span><span>                </span><span class="hs-comment">-- to it; see 'HookedBuildInfo' for the whole sordid saga.</span><span>
</span><span id="line-135"></span><span>                </span><span class="hs-comment">-- As much as possible, Cabal library should avoid using</span><span>
</span><span id="line-136"></span><span>                </span><span class="hs-comment">-- this parameter.</span><span>
</span><span id="line-137"></span><span>        </span><span id="withPrograms"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Program.Db.html#ProgramDb"><span class="hs-identifier hs-type">ProgramDb</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Location and args for all programs</span><span>
</span><span id="line-138"></span><span>        </span><span id="withPackageDB"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDBStack
</span><a href="Distribution.Types.LocalBuildInfo.html#withPackageDB"><span class="hs-identifier hs-var hs-var">withPackageDB</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html#PackageDBStack"><span class="hs-identifier hs-type">PackageDBStack</span></a></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^What package database to use, global\/user</span><span>
</span><span id="line-139"></span><span>        </span><span id="withVanillaLib"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withVanillaLib"><span class="hs-identifier hs-var hs-var">withVanillaLib</span></a></span></span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to build normal libs.</span><span>
</span><span id="line-140"></span><span>        </span><span id="withProfLib"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withProfLib"><span class="hs-identifier hs-var hs-var">withProfLib</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to build profiling versions of libs.</span><span>
</span><span id="line-141"></span><span>        </span><span id="withSharedLib"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withSharedLib"><span class="hs-identifier hs-var hs-var">withSharedLib</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to build shared versions of libs.</span><span>
</span><span id="line-142"></span><span>        </span><span id="withStaticLib"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withStaticLib"><span class="hs-identifier hs-var hs-var">withStaticLib</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to build static versions of libs (with all other libs rolled in)</span><span>
</span><span id="line-143"></span><span>        </span><span id="withDynExe"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withDynExe"><span class="hs-identifier hs-var hs-var">withDynExe</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to link executables dynamically</span><span>
</span><span id="line-144"></span><span>        </span><span id="withFullyStaticExe"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withFullyStaticExe"><span class="hs-identifier hs-var hs-var">withFullyStaticExe</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to link executables fully statically</span><span>
</span><span id="line-145"></span><span>        </span><span id="withProfExe"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withProfExe"><span class="hs-identifier hs-var hs-var">withProfExe</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to build executables for profiling.</span><span>
</span><span id="line-146"></span><span>        </span><span id="withProfLibDetail"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProfDetailLevel
</span><a href="Distribution.Types.LocalBuildInfo.html#withProfLibDetail"><span class="hs-identifier hs-var hs-var">withProfLibDetail</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html#ProfDetailLevel"><span class="hs-identifier hs-type">ProfDetailLevel</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Level of automatic profile detail.</span><span>
</span><span id="line-147"></span><span>        </span><span id="withProfExeDetail"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProfDetailLevel
</span><a href="Distribution.Types.LocalBuildInfo.html#withProfExeDetail"><span class="hs-identifier hs-var hs-var">withProfExeDetail</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html#ProfDetailLevel"><span class="hs-identifier hs-type">ProfDetailLevel</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Level of automatic profile detail.</span><span>
</span><span id="line-148"></span><span>        </span><span id="withOptimization"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; OptimisationLevel
</span><a href="Distribution.Types.LocalBuildInfo.html#withOptimization"><span class="hs-identifier hs-var hs-var">withOptimization</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html#OptimisationLevel"><span class="hs-identifier hs-type">OptimisationLevel</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Whether to build with optimization (if available).</span><span>
</span><span id="line-149"></span><span>        </span><span id="withDebugInfo"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; DebugInfoLevel
</span><a href="Distribution.Types.LocalBuildInfo.html#withDebugInfo"><span class="hs-identifier hs-var hs-var">withDebugInfo</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html#DebugInfoLevel"><span class="hs-identifier hs-type">DebugInfoLevel</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Whether to emit debug info (if available).</span><span>
</span><span id="line-150"></span><span>        </span><span id="withGHCiLib"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#withGHCiLib"><span class="hs-identifier hs-var hs-var">withGHCiLib</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to build libs suitable for use with GHCi.</span><span>
</span><span id="line-151"></span><span>        </span><span id="splitSections"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#splitSections"><span class="hs-identifier hs-var hs-var">splitSections</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Use -split-sections with GHC, if available</span><span>
</span><span id="line-152"></span><span>        </span><span id="splitObjs"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#splitObjs"><span class="hs-identifier hs-var hs-var">splitObjs</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Use -split-objs with GHC, if available</span><span>
</span><span id="line-153"></span><span>        </span><span id="stripExes"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#stripExes"><span class="hs-identifier hs-var hs-var">stripExes</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to strip executables during install</span><span>
</span><span id="line-154"></span><span>        </span><span id="stripLibs"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#stripLibs"><span class="hs-identifier hs-var hs-var">stripLibs</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to strip libraries during install</span><span>
</span><span id="line-155"></span><span>        </span><span id="exeCoverage"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#exeCoverage"><span class="hs-identifier hs-var hs-var">exeCoverage</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to enable executable program coverage</span><span>
</span><span id="line-156"></span><span>        </span><span id="libCoverage"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#libCoverage"><span class="hs-identifier hs-var hs-var">libCoverage</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- ^Whether to enable library program coverage</span><span>
</span><span id="line-157"></span><span>        </span><span id="progPrefix"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PathTemplate
</span><a href="Distribution.Types.LocalBuildInfo.html#progPrefix"><span class="hs-identifier hs-var hs-var">progPrefix</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.InstallDirs.html#PathTemplate"><span class="hs-identifier hs-type">PathTemplate</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Prefix to be prepended to installed executables</span><span>
</span><span id="line-158"></span><span>        </span><span id="progSuffix"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PathTemplate
</span><a href="Distribution.Types.LocalBuildInfo.html#progSuffix"><span class="hs-identifier hs-var hs-var">progSuffix</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.InstallDirs.html#PathTemplate"><span class="hs-identifier hs-type">PathTemplate</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Suffix to be appended to installed executables</span><span>
</span><span id="line-159"></span><span>        </span><span id="relocatable"><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#relocatable"><span class="hs-identifier hs-var hs-var">relocatable</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-comment">--  ^Whether to build a relocatable package</span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-special">}</span><span> </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(forall x. LocalBuildInfo -&gt; Rep LocalBuildInfo x)
-&gt; (forall x. Rep LocalBuildInfo x -&gt; LocalBuildInfo)
-&gt; Generic LocalBuildInfo
forall x. Rep LocalBuildInfo x -&gt; LocalBuildInfo
forall x. LocalBuildInfo -&gt; Rep LocalBuildInfo x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
$cto :: forall x. Rep LocalBuildInfo x -&gt; LocalBuildInfo
$cfrom :: forall x. LocalBuildInfo -&gt; Rep LocalBuildInfo x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679708349"><span id="local-6989586621679708491"><span id="local-6989586621679708494"><span id="local-6989586621679708496"><span class="annot"><span class="annottext">ReadPrec [LocalBuildInfo]
ReadPrec LocalBuildInfo
Int -&gt; ReadS LocalBuildInfo
ReadS [LocalBuildInfo]
(Int -&gt; ReadS LocalBuildInfo)
-&gt; ReadS [LocalBuildInfo]
-&gt; ReadPrec LocalBuildInfo
-&gt; ReadPrec [LocalBuildInfo]
-&gt; Read LocalBuildInfo
forall a.
(Int -&gt; ReadS a)
-&gt; ReadS [a] -&gt; ReadPrec a -&gt; ReadPrec [a] -&gt; Read a
readListPrec :: ReadPrec [LocalBuildInfo]
$creadListPrec :: ReadPrec [LocalBuildInfo]
readPrec :: ReadPrec LocalBuildInfo
$creadPrec :: ReadPrec LocalBuildInfo
readList :: ReadS [LocalBuildInfo]
$creadList :: ReadS [LocalBuildInfo]
readsPrec :: Int -&gt; ReadS LocalBuildInfo
$creadsPrec :: Int -&gt; ReadS LocalBuildInfo
</span><a href="../../base/src/GHC.Read.html#Read"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Read</span></a></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679708271"><span id="local-6989586621679708273"><span id="local-6989586621679708338"><span class="annot"><span class="annottext">Int -&gt; LocalBuildInfo -&gt; ShowS
[LocalBuildInfo] -&gt; ShowS
LocalBuildInfo -&gt; String
(Int -&gt; LocalBuildInfo -&gt; ShowS)
-&gt; (LocalBuildInfo -&gt; String)
-&gt; ([LocalBuildInfo] -&gt; ShowS)
-&gt; Show LocalBuildInfo
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [LocalBuildInfo] -&gt; ShowS
$cshowList :: [LocalBuildInfo] -&gt; ShowS
show :: LocalBuildInfo -&gt; String
$cshow :: LocalBuildInfo -&gt; String
showsPrec :: Int -&gt; LocalBuildInfo -&gt; ShowS
$cshowsPrec :: Int -&gt; LocalBuildInfo -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-161"></span><span>
</span><span id="line-162"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679708257"><span id="local-6989586621679708259"><span id="local-6989586621679708261"><span class="annot"><a href="../../binary/src/Data.Binary.Class.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span></span></span></span><span>
</span><span id="line-163"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679708250"><span id="local-6989586621679708252"><span class="annot"><a href="Distribution.Utils.Structured.html#Structured"><span class="hs-identifier hs-type">Structured</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span></span></span><span>
</span><span id="line-164"></span><span>
</span><span id="line-165"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-166"></span><span class="hs-comment">-- Accessor functions</span><span>
</span><span id="line-167"></span><span>
</span><span id="line-168"></span><span class="hs-comment">-- TODO: Get rid of these functions, as much as possible.  They are</span><span>
</span><span id="line-169"></span><span class="hs-comment">-- a bit useful in some cases, but you should be very careful!</span><span>
</span><span id="line-170"></span><span>
</span><span id="line-171"></span><span class="hs-comment">-- | Extract the 'ComponentId' from the public library component of a</span><span>
</span><span id="line-172"></span><span class="hs-comment">-- 'LocalBuildInfo' if it exists, or make a fake component ID based</span><span>
</span><span id="line-173"></span><span class="hs-comment">-- on the package ID.</span><span>
</span><span id="line-174"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localComponentId"><span class="hs-identifier hs-type">localComponentId</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentId.html#ComponentId"><span class="hs-identifier hs-type">ComponentId</span></a></span><span>
</span><span id="line-175"></span><span id="localComponentId"><span class="annot"><span class="annottext">localComponentId :: LocalBuildInfo -&gt; ComponentId
</span><a href="Distribution.Types.LocalBuildInfo.html#localComponentId"><span class="hs-identifier hs-var hs-var">localComponentId</span></a></span></span><span> </span><span id="local-6989586621679708248"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708248"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-176"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ComponentName -&gt; [ComponentLocalBuildInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameCLBIs"><span class="hs-identifier hs-var">componentNameCLBIs</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708248"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LibraryName -&gt; ComponentName
</span><a href="Distribution.Types.ComponentName.html#CLibName"><span class="hs-identifier hs-var">CLibName</span></a></span><span> </span><span class="annot"><span class="annottext">LibraryName
</span><a href="Distribution.Types.LibraryName.html#LMainLibName"><span class="hs-identifier hs-var">LMainLibName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-177"></span><span>        </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html#LibComponentLocalBuildInfo"><span class="hs-identifier hs-type">LibComponentLocalBuildInfo</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">componentComponentId :: ComponentLocalBuildInfo -&gt; ComponentId
</span><a href="Distribution.Types.ComponentLocalBuildInfo.html#componentComponentId"><span class="hs-identifier hs-var">componentComponentId</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621679708243"><span class="annot"><span class="annottext">ComponentId
</span><a href="#local-6989586621679708243"><span class="hs-identifier hs-var">cid</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">]</span><span>
</span><span id="line-178"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">ComponentId
</span><a href="#local-6989586621679708243"><span class="hs-identifier hs-var">cid</span></a></span><span>
</span><span id="line-179"></span><span>        </span><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; ComponentId
</span><a href="Distribution.Types.ComponentId.html#mkComponentId"><span class="hs-identifier hs-var">mkComponentId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageId -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageId
</span><a href="Distribution.Types.LocalBuildInfo.html#localPackage"><span class="hs-identifier hs-var">localPackage</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708248"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-180"></span><span>
</span><span id="line-181"></span><span class="hs-comment">-- | Extract the 'PackageIdentifier' of a 'LocalBuildInfo'.</span><span>
</span><span id="line-182"></span><span class="hs-comment">-- This is a &quot;safe&quot; use of 'localPkgDescr'</span><span>
</span><span id="line-183"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localPackage"><span class="hs-identifier hs-type">localPackage</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageId.html#PackageId"><span class="hs-identifier hs-type">PackageId</span></a></span><span>
</span><span id="line-184"></span><span id="localPackage"><span class="annot"><span class="annottext">localPackage :: LocalBuildInfo -&gt; PackageId
</span><a href="Distribution.Types.LocalBuildInfo.html#localPackage"><span class="hs-identifier hs-var hs-var">localPackage</span></a></span></span><span> </span><span id="local-6989586621679708240"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708240"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; PackageId
</span><a href="Distribution.Types.PackageDescription.html#package"><span class="hs-identifier hs-var hs-var">package</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708240"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-185"></span><span>
</span><span id="line-186"></span><span class="hs-comment">-- | Extract the 'UnitId' from the library component of a</span><span>
</span><span id="line-187"></span><span class="hs-comment">-- 'LocalBuildInfo' if it exists, or make a fake unit ID based on</span><span>
</span><span id="line-188"></span><span class="hs-comment">-- the package ID.</span><span>
</span><span id="line-189"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localUnitId"><span class="hs-identifier hs-type">localUnitId</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.UnitId.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-190"></span><span id="localUnitId"><span class="annot"><span class="annottext">localUnitId :: LocalBuildInfo -&gt; UnitId
</span><a href="Distribution.Types.LocalBuildInfo.html#localUnitId"><span class="hs-identifier hs-var hs-var">localUnitId</span></a></span></span><span> </span><span id="local-6989586621679708238"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708238"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-191"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ComponentName -&gt; [ComponentLocalBuildInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameCLBIs"><span class="hs-identifier hs-var">componentNameCLBIs</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708238"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LibraryName -&gt; ComponentName
</span><a href="Distribution.Types.ComponentName.html#CLibName"><span class="hs-identifier hs-var">CLibName</span></a></span><span> </span><span class="annot"><span class="annottext">LibraryName
</span><a href="Distribution.Types.LibraryName.html#LMainLibName"><span class="hs-identifier hs-var">LMainLibName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-192"></span><span>        </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html#LibComponentLocalBuildInfo"><span class="hs-identifier hs-type">LibComponentLocalBuildInfo</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">componentUnitId :: ComponentLocalBuildInfo -&gt; UnitId
</span><a href="Distribution.Types.ComponentLocalBuildInfo.html#componentUnitId"><span class="hs-identifier hs-var">componentUnitId</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621679708236"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621679708236"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">]</span><span>
</span><span id="line-193"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621679708236"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-194"></span><span>        </span><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageId -&gt; UnitId
</span><a href="Distribution.Types.UnitId.html#mkLegacyUnitId"><span class="hs-identifier hs-var">mkLegacyUnitId</span></a></span><span> </span><span class="annot"><span class="annottext">(PackageId -&gt; UnitId) -&gt; PackageId -&gt; UnitId
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageId
</span><a href="Distribution.Types.LocalBuildInfo.html#localPackage"><span class="hs-identifier hs-var">localPackage</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708238"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-195"></span><span>
</span><span id="line-196"></span><span class="hs-comment">-- | Extract the compatibility package key from the public library component of a</span><span>
</span><span id="line-197"></span><span class="hs-comment">-- 'LocalBuildInfo' if it exists, or make a fake package key based</span><span>
</span><span id="line-198"></span><span class="hs-comment">-- on the package ID.</span><span>
</span><span id="line-199"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#localCompatPackageKey"><span class="hs-identifier hs-type">localCompatPackageKey</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-200"></span><span id="localCompatPackageKey"><span class="annot"><span class="annottext">localCompatPackageKey :: LocalBuildInfo -&gt; String
</span><a href="Distribution.Types.LocalBuildInfo.html#localCompatPackageKey"><span class="hs-identifier hs-var hs-var">localCompatPackageKey</span></a></span></span><span> </span><span id="local-6989586621679708234"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708234"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-201"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ComponentName -&gt; [ComponentLocalBuildInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameCLBIs"><span class="hs-identifier hs-var">componentNameCLBIs</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708234"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LibraryName -&gt; ComponentName
</span><a href="Distribution.Types.ComponentName.html#CLibName"><span class="hs-identifier hs-var">CLibName</span></a></span><span> </span><span class="annot"><span class="annottext">LibraryName
</span><a href="Distribution.Types.LibraryName.html#LMainLibName"><span class="hs-identifier hs-var">LMainLibName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-202"></span><span>        </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html#LibComponentLocalBuildInfo"><span class="hs-identifier hs-type">LibComponentLocalBuildInfo</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">componentCompatPackageKey :: ComponentLocalBuildInfo -&gt; String
</span><a href="Distribution.Types.ComponentLocalBuildInfo.html#componentCompatPackageKey"><span class="hs-identifier hs-var">componentCompatPackageKey</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621679708232"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679708232"><span class="hs-identifier hs-var">pk</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">]</span><span>
</span><span id="line-203"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679708232"><span class="hs-identifier hs-var">pk</span></a></span><span>
</span><span id="line-204"></span><span>        </span><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageId -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageId
</span><a href="Distribution.Types.LocalBuildInfo.html#localPackage"><span class="hs-identifier hs-var">localPackage</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708234"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-205"></span><span>
</span><span id="line-206"></span><span class="hs-comment">-- | Convenience function to generate a default 'TargetInfo' from a</span><span>
</span><span id="line-207"></span><span class="hs-comment">-- 'ComponentLocalBuildInfo'.  The idea is to call this once, and then</span><span>
</span><span id="line-208"></span><span class="hs-comment">-- use 'TargetInfo' everywhere else.  Private to this module.</span><span>
</span><span id="line-209"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#mkTargetInfo"><span class="hs-identifier hs-type">mkTargetInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html#ComponentLocalBuildInfo"><span class="hs-identifier hs-type">ComponentLocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span>
</span><span id="line-210"></span><span id="mkTargetInfo"><span class="annot"><span class="annottext">mkTargetInfo :: PackageDescription
-&gt; LocalBuildInfo -&gt; ComponentLocalBuildInfo -&gt; TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#mkTargetInfo"><span class="hs-identifier hs-var hs-var">mkTargetInfo</span></a></span></span><span> </span><span id="local-6989586621679708230"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708230"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679708229"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708229"><span class="hs-identifier hs-var">_lbi</span></a></span></span><span> </span><span id="local-6989586621679708228"><span class="annot"><span class="annottext">ComponentLocalBuildInfo
</span><a href="#local-6989586621679708228"><span class="hs-identifier hs-var">clbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-211"></span><span>    </span><span class="annot"><span class="annottext">TargetInfo :: ComponentLocalBuildInfo -&gt; Component -&gt; TargetInfo
</span><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-212"></span><span>        </span><span class="annot"><span class="annottext">targetCLBI :: ComponentLocalBuildInfo
</span><a href="Distribution.Types.TargetInfo.html#targetCLBI"><span class="hs-identifier hs-var">targetCLBI</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ComponentLocalBuildInfo
</span><a href="#local-6989586621679708228"><span class="hs-identifier hs-var">clbi</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-213"></span><span>        </span><span class="hs-comment">-- NB: @pkg_descr@, not @localPkgDescr lbi@!</span><span>
</span><span id="line-214"></span><span>        </span><span class="annot"><span class="annottext">targetComponent :: Component
</span><a href="Distribution.Types.TargetInfo.html#targetComponent"><span class="hs-identifier hs-var">targetComponent</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; ComponentName -&gt; Component
</span><a href="Distribution.Types.PackageDescription.html#getComponent"><span class="hs-identifier hs-var">getComponent</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708230"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-215"></span><span>                                       </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ComponentLocalBuildInfo -&gt; ComponentName
</span><a href="Distribution.Types.ComponentLocalBuildInfo.html#componentLocalName"><span class="hs-identifier hs-var hs-var">componentLocalName</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentLocalBuildInfo
</span><a href="#local-6989586621679708228"><span class="hs-identifier hs-var">clbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-216"></span><span>     </span><span class="hs-special">}</span><span>
</span><span id="line-217"></span><span>
</span><span id="line-218"></span><span class="hs-comment">-- | Return all 'TargetInfo's associated with 'ComponentName'.</span><span>
</span><span id="line-219"></span><span class="hs-comment">-- In the presence of Backpack there may be more than one!</span><span>
</span><span id="line-220"></span><span class="hs-comment">-- Has a prime because it takes a 'PackageDescription' argument</span><span>
</span><span id="line-221"></span><span class="hs-comment">-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.</span><span>
</span><span id="line-222"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#componentNameTargets%27"><span class="hs-identifier hs-type">componentNameTargets'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentName.html#ComponentName"><span class="hs-identifier hs-type">ComponentName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-223"></span><span id="componentNameTargets%27"><span class="annot"><span class="annottext">componentNameTargets' :: PackageDescription
-&gt; LocalBuildInfo -&gt; ComponentName -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameTargets%27"><span class="hs-identifier hs-var hs-var">componentNameTargets'</span></a></span></span><span> </span><span id="local-6989586621679708222"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708222"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679708221"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708221"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span id="local-6989586621679708220"><span class="annot"><span class="annottext">ComponentName
</span><a href="#local-6989586621679708220"><span class="hs-identifier hs-var">cname</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-224"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">ComponentName
-&gt; Map ComponentName [ComponentLocalBuildInfo]
-&gt; Maybe [ComponentLocalBuildInfo]
forall k a. Ord k =&gt; k -&gt; Map k a -&gt; Maybe a
</span><a href="../../containers/src/Data.Map.Internal.html#lookup"><span class="hs-identifier hs-var">Map.lookup</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentName
</span><a href="#local-6989586621679708220"><span class="hs-identifier hs-var">cname</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Map ComponentName [ComponentLocalBuildInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameMap"><span class="hs-identifier hs-var hs-var">componentNameMap</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708221"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-225"></span><span>        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679708218"><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><a href="#local-6989586621679708218"><span class="hs-identifier hs-var">clbis</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(ComponentLocalBuildInfo -&gt; TargetInfo)
-&gt; [ComponentLocalBuildInfo] -&gt; [TargetInfo]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; ComponentLocalBuildInfo -&gt; TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#mkTargetInfo"><span class="hs-identifier hs-var">mkTargetInfo</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708222"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708221"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><a href="#local-6989586621679708218"><span class="hs-identifier hs-var">clbis</span></a></span><span>
</span><span id="line-226"></span><span>        </span><span class="annot"><span class="annottext">Maybe [ComponentLocalBuildInfo]
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-227"></span><span>
</span><span id="line-228"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#unitIdTarget%27"><span class="hs-identifier hs-type">unitIdTarget'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.UnitId.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span>
</span><span id="line-229"></span><span id="unitIdTarget%27"><span class="annot"><span class="annottext">unitIdTarget' :: PackageDescription -&gt; LocalBuildInfo -&gt; UnitId -&gt; Maybe TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#unitIdTarget%27"><span class="hs-identifier hs-var hs-var">unitIdTarget'</span></a></span></span><span> </span><span id="local-6989586621679708217"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708217"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679708216"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708216"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span id="local-6989586621679708215"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621679708215"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-230"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Key ComponentLocalBuildInfo
-&gt; Graph ComponentLocalBuildInfo -&gt; Maybe ComponentLocalBuildInfo
forall a. IsNode a =&gt; Key a -&gt; Graph a -&gt; Maybe a
</span><a href="Distribution.Compat.Graph.html#lookup"><span class="hs-identifier hs-var">Graph.lookup</span></a></span><span> </span><span class="annot"><span class="annottext">Key ComponentLocalBuildInfo
UnitId
</span><a href="#local-6989586621679708215"><span class="hs-identifier hs-var">uid</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Graph ComponentLocalBuildInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#componentGraph"><span class="hs-identifier hs-var hs-var">componentGraph</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708216"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-231"></span><span>        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679708213"><span class="annot"><span class="annottext">ComponentLocalBuildInfo
</span><a href="#local-6989586621679708213"><span class="hs-identifier hs-var">clbi</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TargetInfo -&gt; Maybe TargetInfo
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; ComponentLocalBuildInfo -&gt; TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#mkTargetInfo"><span class="hs-identifier hs-var">mkTargetInfo</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708217"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708216"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentLocalBuildInfo
</span><a href="#local-6989586621679708213"><span class="hs-identifier hs-var">clbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-232"></span><span>        </span><span class="annot"><span class="annottext">Maybe ComponentLocalBuildInfo
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Maybe TargetInfo
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span class="hs-comment">-- | Return all 'ComponentLocalBuildInfo's associated with 'ComponentName'.</span><span>
</span><span id="line-235"></span><span class="hs-comment">-- In the presence of Backpack there may be more than one!</span><span>
</span><span id="line-236"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#componentNameCLBIs"><span class="hs-identifier hs-type">componentNameCLBIs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentName.html#ComponentName"><span class="hs-identifier hs-type">ComponentName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.ComponentLocalBuildInfo.html#ComponentLocalBuildInfo"><span class="hs-identifier hs-type">ComponentLocalBuildInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-237"></span><span id="componentNameCLBIs"><span class="annot"><span class="annottext">componentNameCLBIs :: LocalBuildInfo -&gt; ComponentName -&gt; [ComponentLocalBuildInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameCLBIs"><span class="hs-identifier hs-var hs-var">componentNameCLBIs</span></a></span></span><span> </span><span id="local-6989586621679708212"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708212"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span id="local-6989586621679708211"><span class="annot"><span class="annottext">ComponentName
</span><a href="#local-6989586621679708211"><span class="hs-identifier hs-var">cname</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-238"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">ComponentName
-&gt; Map ComponentName [ComponentLocalBuildInfo]
-&gt; Maybe [ComponentLocalBuildInfo]
forall k a. Ord k =&gt; k -&gt; Map k a -&gt; Maybe a
</span><a href="../../containers/src/Data.Map.Internal.html#lookup"><span class="hs-identifier hs-var">Map.lookup</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentName
</span><a href="#local-6989586621679708211"><span class="hs-identifier hs-var">cname</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Map ComponentName [ComponentLocalBuildInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameMap"><span class="hs-identifier hs-var hs-var">componentNameMap</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708212"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-239"></span><span>        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679708210"><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><a href="#local-6989586621679708210"><span class="hs-identifier hs-var">clbis</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><a href="#local-6989586621679708210"><span class="hs-identifier hs-var">clbis</span></a></span><span>
</span><span id="line-240"></span><span>        </span><span class="annot"><span class="annottext">Maybe [ComponentLocalBuildInfo]
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-241"></span><span>
</span><span id="line-242"></span><span class="hs-comment">-- TODO: Maybe cache topsort (Graph can do this)</span><span>
</span><span id="line-243"></span><span>
</span><span id="line-244"></span><span class="hs-comment">-- | Return the list of default 'TargetInfo's associated with a</span><span>
</span><span id="line-245"></span><span class="hs-comment">-- configured package, in the order they need to be built.</span><span>
</span><span id="line-246"></span><span class="hs-comment">-- Has a prime because it takes a 'PackageDescription' argument</span><span>
</span><span id="line-247"></span><span class="hs-comment">-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.</span><span>
</span><span id="line-248"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder%27"><span class="hs-identifier hs-type">allTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-249"></span><span id="allTargetsInBuildOrder%27"><span class="annot"><span class="annottext">allTargetsInBuildOrder' :: PackageDescription -&gt; LocalBuildInfo -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder%27"><span class="hs-identifier hs-var hs-var">allTargetsInBuildOrder'</span></a></span></span><span> </span><span id="local-6989586621679708209"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708209"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679708208"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708208"><span class="hs-identifier hs-var">lbi</span></a></span></span><span>
</span><span id="line-250"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(ComponentLocalBuildInfo -&gt; TargetInfo)
-&gt; [ComponentLocalBuildInfo] -&gt; [TargetInfo]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; ComponentLocalBuildInfo -&gt; TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#mkTargetInfo"><span class="hs-identifier hs-var">mkTargetInfo</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708209"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708208"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Graph ComponentLocalBuildInfo -&gt; [ComponentLocalBuildInfo]
forall a. Graph a -&gt; [a]
</span><a href="Distribution.Compat.Graph.html#revTopSort"><span class="hs-identifier hs-var">Graph.revTopSort</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Graph ComponentLocalBuildInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#componentGraph"><span class="hs-identifier hs-var hs-var">componentGraph</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708208"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-251"></span><span>
</span><span id="line-252"></span><span class="hs-comment">-- | Execute @f@ for every 'TargetInfo' in the package, respecting the</span><span>
</span><span id="line-253"></span><span class="hs-comment">-- build dependency order.  (TODO: We should use Shake!)</span><span>
</span><span id="line-254"></span><span class="hs-comment">-- Has a prime because it takes a 'PackageDescription' argument</span><span>
</span><span id="line-255"></span><span class="hs-comment">-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.</span><span>
</span><span id="line-256"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withAllTargetsInBuildOrder%27"><span class="hs-identifier hs-type">withAllTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-257"></span><span id="withAllTargetsInBuildOrder%27"><span class="annot"><span class="annottext">withAllTargetsInBuildOrder' :: PackageDescription
-&gt; LocalBuildInfo -&gt; (TargetInfo -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.LocalBuildInfo.html#withAllTargetsInBuildOrder%27"><span class="hs-identifier hs-var hs-var">withAllTargetsInBuildOrder'</span></a></span></span><span> </span><span id="local-6989586621679708206"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708206"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679708205"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708205"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span id="local-6989586621679708204"><span class="annot"><span class="annottext">TargetInfo -&gt; IO ()
</span><a href="#local-6989586621679708204"><span class="hs-identifier hs-var">f</span></a></span></span><span>
</span><span id="line-258"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IO ()] -&gt; IO ()
forall (t :: * -&gt; *) (m :: * -&gt; *) a.
(Foldable t, Monad m) =&gt;
t (m a) -&gt; m ()
</span><a href="../../base/src/Data.Foldable.html#sequence_"><span class="hs-identifier hs-var">sequence_</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">TargetInfo -&gt; IO ()
</span><a href="#local-6989586621679708204"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">TargetInfo
</span><a href="#local-6989586621679708202"><span class="hs-identifier hs-var">target</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679708202"><span class="annot"><span class="annottext">TargetInfo
</span><a href="#local-6989586621679708202"><span class="hs-identifier hs-var">target</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder%27"><span class="hs-identifier hs-var">allTargetsInBuildOrder'</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708206"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708205"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-259"></span><span>
</span><span id="line-260"></span><span class="hs-comment">-- | Return the list of all targets needed to build the @uids@, in</span><span>
</span><span id="line-261"></span><span class="hs-comment">-- the order they need to be built.</span><span>
</span><span id="line-262"></span><span class="hs-comment">-- Has a prime because it takes a 'PackageDescription' argument</span><span>
</span><span id="line-263"></span><span class="hs-comment">-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.</span><span>
</span><span id="line-264"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder%27"><span class="hs-identifier hs-type">neededTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.UnitId.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-265"></span><span id="neededTargetsInBuildOrder%27"><span class="annot"><span class="annottext">neededTargetsInBuildOrder' :: PackageDescription -&gt; LocalBuildInfo -&gt; [UnitId] -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder%27"><span class="hs-identifier hs-var hs-var">neededTargetsInBuildOrder'</span></a></span></span><span> </span><span id="local-6989586621679708201"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708201"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679708200"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708200"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span id="local-6989586621679708199"><span class="annot"><span class="annottext">[UnitId]
</span><a href="#local-6989586621679708199"><span class="hs-identifier hs-var">uids</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-266"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Graph ComponentLocalBuildInfo
-&gt; [Key ComponentLocalBuildInfo] -&gt; Maybe [ComponentLocalBuildInfo]
forall a. Graph a -&gt; [Key a] -&gt; Maybe [a]
</span><a href="Distribution.Compat.Graph.html#closure"><span class="hs-identifier hs-var">Graph.closure</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Graph ComponentLocalBuildInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#componentGraph"><span class="hs-identifier hs-var hs-var">componentGraph</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708200"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Key ComponentLocalBuildInfo]
[UnitId]
</span><a href="#local-6989586621679708199"><span class="hs-identifier hs-var">uids</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-267"></span><span>    </span><span class="annot"><span class="annottext">Maybe [ComponentLocalBuildInfo]
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; [TargetInfo]
forall a. HasCallStack =&gt; String -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; [TargetInfo]) -&gt; String -&gt; [TargetInfo]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;localBuildPlan: missing uids &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, &quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(UnitId -&gt; String) -&gt; [UnitId] -&gt; [String]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">[UnitId]
</span><a href="#local-6989586621679708199"><span class="hs-identifier hs-var">uids</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-268"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679708195"><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><a href="#local-6989586621679708195"><span class="hs-identifier hs-var">clos</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(ComponentLocalBuildInfo -&gt; TargetInfo)
-&gt; [ComponentLocalBuildInfo] -&gt; [TargetInfo]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; ComponentLocalBuildInfo -&gt; TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#mkTargetInfo"><span class="hs-identifier hs-var">mkTargetInfo</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708201"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708200"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Graph ComponentLocalBuildInfo -&gt; [ComponentLocalBuildInfo]
forall a. Graph a -&gt; [a]
</span><a href="Distribution.Compat.Graph.html#revTopSort"><span class="hs-identifier hs-var">Graph.revTopSort</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[ComponentLocalBuildInfo] -&gt; Graph ComponentLocalBuildInfo
forall a. (IsNode a, Show (Key a)) =&gt; [a] -&gt; Graph a
</span><a href="Distribution.Compat.Graph.html#fromDistinctList"><span class="hs-identifier hs-var">Graph.fromDistinctList</span></a></span><span> </span><span class="annot"><span class="annottext">[ComponentLocalBuildInfo]
</span><a href="#local-6989586621679708195"><span class="hs-identifier hs-var">clos</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-269"></span><span>
</span><span id="line-270"></span><span class="hs-comment">-- | Execute @f@ for every 'TargetInfo' needed to build @uid@s, respecting</span><span>
</span><span id="line-271"></span><span class="hs-comment">-- the build dependency order.</span><span>
</span><span id="line-272"></span><span class="hs-comment">-- Has a prime because it takes a 'PackageDescription' argument</span><span>
</span><span id="line-273"></span><span class="hs-comment">-- which may disagree with 'localPkgDescr' in 'LocalBuildInfo'.</span><span>
</span><span id="line-274"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withNeededTargetsInBuildOrder%27"><span class="hs-identifier hs-type">withNeededTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.UnitId.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-275"></span><span id="withNeededTargetsInBuildOrder%27"><span class="annot"><span class="annottext">withNeededTargetsInBuildOrder' :: PackageDescription
-&gt; LocalBuildInfo -&gt; [UnitId] -&gt; (TargetInfo -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.LocalBuildInfo.html#withNeededTargetsInBuildOrder%27"><span class="hs-identifier hs-var hs-var">withNeededTargetsInBuildOrder'</span></a></span></span><span> </span><span id="local-6989586621679708193"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708193"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679708192"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708192"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span id="local-6989586621679708191"><span class="annot"><span class="annottext">[UnitId]
</span><a href="#local-6989586621679708191"><span class="hs-identifier hs-var">uids</span></a></span></span><span> </span><span id="local-6989586621679708190"><span class="annot"><span class="annottext">TargetInfo -&gt; IO ()
</span><a href="#local-6989586621679708190"><span class="hs-identifier hs-var">f</span></a></span></span><span>
</span><span id="line-276"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IO ()] -&gt; IO ()
forall (t :: * -&gt; *) (m :: * -&gt; *) a.
(Foldable t, Monad m) =&gt;
t (m a) -&gt; m ()
</span><a href="../../base/src/Data.Foldable.html#sequence_"><span class="hs-identifier hs-var">sequence_</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">TargetInfo -&gt; IO ()
</span><a href="#local-6989586621679708190"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">TargetInfo
</span><a href="#local-6989586621679708189"><span class="hs-identifier hs-var">target</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679708189"><span class="annot"><span class="annottext">TargetInfo
</span><a href="#local-6989586621679708189"><span class="hs-identifier hs-var">target</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; [UnitId] -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder%27"><span class="hs-identifier hs-var">neededTargetsInBuildOrder'</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679708193"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708192"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="annot"><span class="annottext">[UnitId]
</span><a href="#local-6989586621679708191"><span class="hs-identifier hs-var">uids</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-277"></span><span>
</span><span id="line-278"></span><span class="hs-comment">-- | Is coverage enabled for test suites? In practice, this requires library</span><span>
</span><span id="line-279"></span><span class="hs-comment">-- and executable profiling to be enabled.</span><span>
</span><span id="line-280"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#testCoverage"><span class="hs-identifier hs-type">testCoverage</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-281"></span><span id="testCoverage"><span class="annot"><span class="annottext">testCoverage :: LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#testCoverage"><span class="hs-identifier hs-var hs-var">testCoverage</span></a></span></span><span> </span><span id="local-6989586621679708188"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708188"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#exeCoverage"><span class="hs-identifier hs-var hs-var">exeCoverage</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708188"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Bool
</span><a href="Distribution.Types.LocalBuildInfo.html#libCoverage"><span class="hs-identifier hs-var hs-var">libCoverage</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708188"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-282"></span><span>
</span><span id="line-283"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-284"></span><span class="hs-comment">-- Stub functions to prevent someone from accidentally defining them</span><span>
</span><span id="line-285"></span><span>
</span><span id="line-286"></span><span class="hs-pragma">{-# WARNING</span><span> </span><span class="hs-pragma">componentNameTargets</span><span class="hs-pragma">,</span><span> </span><span class="hs-pragma">unitIdTarget</span><span class="hs-pragma">,</span><span> </span><span class="hs-pragma">allTargetsInBuildOrder</span><span class="hs-pragma">,</span><span> </span><span class="hs-pragma">withAllTargetsInBuildOrder</span><span class="hs-pragma">,</span><span> </span><span class="hs-pragma">neededTargetsInBuildOrder</span><span class="hs-pragma">,</span><span> </span><span class="hs-pragma">withNeededTargetsInBuildOrder</span><span> </span><span class="hs-pragma">&quot;By using this function, you may be introducing a bug where you retrieve a 'Component' which does not have 'HookedBuildInfo' applied to it.  See the documentation for 'HookedBuildInfo' for an explanation of the issue.  If you have a 'PakcageDescription' handy (NOT from the 'LocalBuildInfo'), try using the primed version of the function, which takes it as an extra argument.&quot;</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-287"></span><span>
</span><span id="line-288"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#componentNameTargets"><span class="hs-identifier hs-type">componentNameTargets</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentName.html#ComponentName"><span class="hs-identifier hs-type">ComponentName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-289"></span><span id="componentNameTargets"><span class="annot"><span class="annottext">componentNameTargets :: LocalBuildInfo -&gt; ComponentName -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameTargets"><span class="hs-identifier hs-var hs-var">componentNameTargets</span></a></span></span><span> </span><span id="local-6989586621679708186"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708186"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; ComponentName -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#componentNameTargets%27"><span class="hs-identifier hs-var">componentNameTargets'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708186"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708186"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-290"></span><span>
</span><span id="line-291"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#unitIdTarget"><span class="hs-identifier hs-type">unitIdTarget</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.UnitId.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span>
</span><span id="line-292"></span><span id="unitIdTarget"><span class="annot"><span class="annottext">unitIdTarget :: LocalBuildInfo -&gt; UnitId -&gt; Maybe TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#unitIdTarget"><span class="hs-identifier hs-var hs-var">unitIdTarget</span></a></span></span><span> </span><span id="local-6989586621679708185"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708185"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; UnitId -&gt; Maybe TargetInfo
</span><a href="Distribution.Types.LocalBuildInfo.html#unitIdTarget%27"><span class="hs-identifier hs-var">unitIdTarget'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708185"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708185"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-293"></span><span>
</span><span id="line-294"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder"><span class="hs-identifier hs-type">allTargetsInBuildOrder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-295"></span><span id="allTargetsInBuildOrder"><span class="annot"><span class="annottext">allTargetsInBuildOrder :: LocalBuildInfo -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder"><span class="hs-identifier hs-var hs-var">allTargetsInBuildOrder</span></a></span></span><span> </span><span id="local-6989586621679708184"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708184"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#allTargetsInBuildOrder%27"><span class="hs-identifier hs-var">allTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708184"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708184"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-296"></span><span>
</span><span id="line-297"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withAllTargetsInBuildOrder"><span class="hs-identifier hs-type">withAllTargetsInBuildOrder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-298"></span><span id="withAllTargetsInBuildOrder"><span class="annot"><span class="annottext">withAllTargetsInBuildOrder :: LocalBuildInfo -&gt; (TargetInfo -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.LocalBuildInfo.html#withAllTargetsInBuildOrder"><span class="hs-identifier hs-var hs-var">withAllTargetsInBuildOrder</span></a></span></span><span> </span><span id="local-6989586621679708183"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708183"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; (TargetInfo -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.LocalBuildInfo.html#withAllTargetsInBuildOrder%27"><span class="hs-identifier hs-var">withAllTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708183"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708183"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-299"></span><span>
</span><span id="line-300"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder"><span class="hs-identifier hs-type">neededTargetsInBuildOrder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.UnitId.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-301"></span><span id="neededTargetsInBuildOrder"><span class="annot"><span class="annottext">neededTargetsInBuildOrder :: LocalBuildInfo -&gt; [UnitId] -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder"><span class="hs-identifier hs-var hs-var">neededTargetsInBuildOrder</span></a></span></span><span> </span><span id="local-6989586621679708182"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708182"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; [UnitId] -&gt; [TargetInfo]
</span><a href="Distribution.Types.LocalBuildInfo.html#neededTargetsInBuildOrder%27"><span class="hs-identifier hs-var">neededTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708182"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708182"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-302"></span><span>
</span><span id="line-303"></span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#withNeededTargetsInBuildOrder"><span class="hs-identifier hs-type">withNeededTargetsInBuildOrder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.UnitId.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.TargetInfo.html#TargetInfo"><span class="hs-identifier hs-type">TargetInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-304"></span><span id="withNeededTargetsInBuildOrder"><span class="annot"><span class="annottext">withNeededTargetsInBuildOrder :: LocalBuildInfo -&gt; [UnitId] -&gt; (TargetInfo -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.LocalBuildInfo.html#withNeededTargetsInBuildOrder"><span class="hs-identifier hs-var hs-var">withNeededTargetsInBuildOrder</span></a></span></span><span> </span><span id="local-6989586621679708181"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708181"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; [UnitId] -&gt; (TargetInfo -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.LocalBuildInfo.html#withNeededTargetsInBuildOrder%27"><span class="hs-identifier hs-var">withNeededTargetsInBuildOrder'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708181"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679708181"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-305"></span></pre></body></html>